package org.example.promptword.common;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author heartingme
 */
@AllArgsConstructor
@Getter
public enum ResponseEnum {

    /**
     * 请求成功
     */
    SUCCESS("10000", "调用成功"),

    /**
     * 失败
     */
    FAILURE("500", "服务异常"),

    /**
     * Token错误
     */
    TOKEN_ERROR("401", "token错误"),

    /**
     * 业务异常
     */
    PARAM_CHECK_ERROR("10001", "参数校验异常"),
    SERVICE_PARAM_CHECK_ERROR("10002", "微服务名必须非空，仅包含数字及大小写字母，且以小写字母开头"),
    AST_ANALYSIS_FAILED("10003", "代码解析失败"),
    GENERATE_CALL_RELATIONS_FAILED("10004", "调用关系生成失败"),
    NAME_CHECK_ERROR("10005", "名称必须非空，仅包含数字及字母，且长度大于3"),
    CLASSNAME_CHECK_ERROR("10011", "名称必须非空，首字母大写，包含数字及字母，且长度大于3"),
    NAME_DUPLICATE("10006", "文件名称重复"),
    NOT_EXIST("10007", "对象不存在"),
    PARAM_NOT_EXIST("10008", "参数变量不存在"),
    CODE_FAIL("10009", "生成代码失败"),
    NOT_CHILD_TYPE("10010", "不支持该子级文件类型"),
    NO_FUNCTION("10011", "表函数不可以为空"),

    COMPILE_ERROR("10012", "编译异常，请稍后重试"),
    UNIT_TEST_NOT_PASS("10013", "单元测试不通过"),
    SERVICE_NAME_ERROR("10014", "微服务名不允许与项目名重名"),
    FILE_PARSE_ERROR("10015", "解析根pom或者gateway服务中yml文件失败，请检查该文件内容"),


    /**
     * 文件相关
     */
    FILE_ERROR("10017", "文件格式错误"),
    FILE_EMPTY("10018", "文件不存在"),
    FILE_DECOMPRESSION_ERROR("10100", "文件解压异常"),
    FILE_POM_ERROR("10101", "不存在pom文件"),
    SERVICE_UPDATE_ERROR("10102", "原微服务有更新，不可导入"),
    FILE_SIZE_ERROR("10103", "文件大小超过2G"),
    DIR_ERROR("10104", "规定目录不符合平台设定"),
    PROJECT_NAME_IS_NULL("10105", "项目名不能为空"),
    PROJECT_NAME_REGULAR("10106", "项目名称只能包含小写字母或数字"),
    PROJECT_NAME_EXIST("10107", "项目名已存在"),
    POM_NOT_EXIST("10108", "未检测到pom文件，非标准java web项目"),
    POM_ANALYZE_ERR("10109", "pom解析异常"),
    NOT_SERVICE("10110", "项目中未找到服务"),
    CATALOGUE_FIND_ERR("10111", "查找目录错误"),
    GIT_INFO_NO_EXIST("10112", "git信息不存在，请手动配置"),
    GIT_BRANCHES_ERR("10113", "git获取分支异常"),
    GIT_CLONE_ERR("10114", "git clone代码异常"),
    NOT_POSITION_SERVICE("10115","未定位到java微服务"),
    /**
     * toFile相关
     */
    TO_FILE_ERROR("10019", "代码保存失败"),
    /**
     * 项目相关
     */
    PROJECT_TYPE_ERROR("10020", "项目类型错误"),

    NOT_FOUND_JAVA_CODE("10021", "未从大模型结果中找到java代码"),

    TOKEN_OVER("10022", "prompt超出限制，请精简prompt"),



    /**
     * 访问日志表相关
     */
    PAGE_TRACKING_PARAM_ERROR("10023", "访问页面埋点参数错误"),

    /**
     * git相关 11xxx
     */
    GIT_PULL_ERROR("11000","拉取失败"),
    GIT_MERGE_ERROR("11010","合并失败"),
    PROJECT_NOT_EXIST("10023","项目不存在"),

    /**
     * 提示词小测验相关
     */
    USER_INPUT_EMPTY("10024","项目类型错误"),



    GIT_INFO_ERROR("11011", "获取git信息失败"),
    BRANCH_TYPE_ERROR("11012", "分支类型错误"),

    BRANCH_NAME_ERROR("11013","分支名称错误"),
    INIT_PROJECT_ERROR("11014","初始化项目错误"),

    INIT_BRANCH_ERROR("11015","初始化分支错误"),

    GIT_PUSH_ERROR("11010","推送失败"),

    /**
     * 文档类型未知异常
     */
    UNKNOWN_DOCUMENT_TYPE("50000", "文档类型错误"),
    MARKDOWN_ANALYSIS_ERROR("50001", "markdown解析错误");

    private final String code;

    private final String message;

}